Skip to main content

29.3.1. Entity Classes

29.3.1. 实体类

通常,JPA实体类被定义到一个persistence.xml文件。在Spring Boot中,这个文件被“实体扫描”取代。默认的,Spring Boot会查找主配置类(被@EnableAutoConfiguration@SpringBootApplication注解的类)下的所有包。

任何被@Entity@Embeddable@MappedSuperclass注解的类都将被考虑。一个普通的实体类看起来像这样:

package com.example.myapp.domain;

import java.io.Serializable;
import javax.persistence.*;

@Entity
public class City implements Serializable {

@Id
@GeneratedValue
private Long id;

@Column(nullable = false)
private String name;

@Column(nullable = false)
private String state;

// ... additional members, often include @OneToMany mappings

protected City() {
// no-args constructor required by JPA spec
// this one is protected since it shouldn't be used directly
}

public City(String name, String state) {
this.name = name;
this.country = country;
}

public String getName() {
return this.name;
}

public String getState() {
return this.state;
}
// ... etc
}

你可以使用@EntityScan注解自定义实体扫描路径,具体参考[章节 79.4,从Spring配置分离@Entity定义](../IX. ‘How-to’ guides/79.4. Separate @Entity Definitions from Spring Configuration.md)。